package com.ingen.chakhleh.core.api.service.core;

import java.util.Collection;

import com.googlecode.objectify.Key;
import com.ingen.chakhleh.core.api.domain.Course;
import com.ingen.chakhleh.core.api.domain.Dish;
import com.ingen.chakhleh.core.api.domain.Restaurant;

public interface ApplicationCoreService {

	public Course getCourse(String courseName);
	public Dish getDish(String dishName);
	public Course getCourse(Key<Course> key);
	public Dish getDish(Key<Dish> key);
	
	public Collection<Restaurant> getRestaurantsWithName(String restaurantName);
	
	public Collection<Course> getCourses(String propertyName, Object propertyValue);
	public Collection<Dish> getDishs(String propertyName, Object propertyValue);
	
	public Collection<Restaurant> getRestaurntsServingDishWithName(String dishName);
	public Collection<Dish> getDishesServedInRestaurant(Restaurant restaurant);
	
	public Collection<Restaurant> getRestaurantsWithNamePrefixedWith(String restaurantNamePrefix);
	public Collection<Dish> getDishesWithNamePrefixedWith(String dishNamePrefix);
	
}
